/*
 * @Description: 
 * @Author: changqing
 * @Date: 2021-08-16 20:24:42
 * @LastEditTime: 2021-08-16 20:31:05
 * @LastEditors: changqing
 * @Usage: 
 */
//推送值的producer来自observable外部，何时推送以及推送什么样的值在创建时都是未知的。producer与observer是一对多的关系，即multicast (多播)的。
//每当有observer订阅时，会将observer注册到观察者列表中。
//当外部的producer被触发或执行时，会将值同时推送给所有的observer

var {Observable,Subject} = require('rxjs');

const source$ = new Subject();

source$.subscribe(data => console.log(`Subject 第一次订阅: ${data}`));
// 1, 2, 3, 4
  
source$.next(1);
source$.next(2);

source$.subscribe(data => console.log(`Subject 第二次订阅: ${data}`));
// 3, 4

source$.next(3);
source$.next(4);

source$.subscribe(data => console.log(`Subject 第三次订阅: ${data}`));
// (沒收到任何事件就结束了)
source$.complete();